a. The Field of the Invention
This invention relates to the field of network communications. In particular, the invention relates to a network system having an architecture that supports a flexible and efficient interconnection of protocol layers.
b. Background Information
Efficient data throughput and simpler control and configuration are important characteristics of network devices, such as routers. However, as more network protocols are supported, the task of configuring and maintaining the network devices becomes more daunting. As customers demand more flexibility and features of the network devices, the deficiencies of the present data flow and control flow of network devices becomes more apparent.
Present port and path management systems illustrate some of the deficiencies. In some port and path management systems, designers must write code to support specific link set-up and channel set-up protocol combinations. For example, to support point-to-point protocol (PPP) over an ISDN channel, specific code must be written. If a customer wants PPP over frame-relay over a high speed serial device (HSS), then the designers must modify the PPP code and combine it with new code to support the particular configuration. If a customer wants some other combination of PPP and frame-relay, again the designers need change both the PPP code and the frame-relay code. Adding features such as providing additional bandwidth on demand by bundling multiple paths for use by a single port can be even more difficult. This perpetual need to change the code that supports the various parts of the network protocol leads to a system that can be difficult to debug, difficult to extend, difficult to customize, and difficult to support.
Focusing on the difficulty in customization, present systems make adding security features or compression features to the network device very difficult. The new features must be written directly into the already existing code. Selectively including such features may require two or more completely different sets of code. This makes supporting such systems difficult.
Therefore, what is needed is a network system including an improved architecture that is more extensible, flexible and customizable than present networks.
A method and apparatus to interconnect network protocol layers providing high-performance data transfers and flexible controls is described.
One embodiment of the invention includes a system for providing network communications through a set of network protocol layers. The system has a processor, a memory and a physical media connection. The processor is coupled to the memory and the physical media connection. A first layer of the set of network protocol layers provides an interface to the physical media connection. A second layer of the set of network protocol layers provides an interface to a different network protocol layer than the first layer. The network communications includes a plurality of control events. The system also includes the following elements. A plurality of components where each component implements at least part of a layer in the set of network protocol layers. The plurality of components includes a first component and a second component. The first component implements the first layer, the second component implements the second layer. A first module provides a first interface to the first component. A second module provides a second interface to the second component. A configuration definition defines a subset of the set of network protocol layers, where the subset includes the first layer and the second layer. A communications component causes a creation of the first module and the second module in response to the configuration definition. A first state machine is coupled to the first module and the second module. The first state machine causes a communication of a first control event of the plurality of control events between the first module, the second module, and the communications component. Thus, the modules allow the components to interact without requiring the components to know which other components a specific component is interacting with.
In one embodiment, a module can be used to bundle channels together. In this embodiment, a module has multiple dependent child modules. Control information received by the module can be distributed to each of the child modules. Network data can be sent directly to each of the dependent child modulesxe2x80x2 associated components. In another embodiment, a module can depend upon multiple parent modules.
Although many details have been included in the description and the figures, the invention is defined by the scope of the claims. Only limitations found in those claims apply to the invention.